package com.gadgets.cm01.role.repository;

import com.gadgets.cm01.role.dto.UserRoleAllocationDTO;
import com.gadgets.cm01.role.dto.UserRoleQueryDTO;
import com.gadgets.cm01.role.pojo.Role;
import com.gadgets.cm01.role.pojo.UserRoleRelation;
import com.gadgets.cm01.user.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author UncleXiu
 * @version V1.0.0
 * @data 2020-09-17
 *
 */
@Mapper
@Repository
public interface IUserRoleRelationMapper {

    /**
     * 批量插入角色下菜单权限信息
     * @param relationList  权限信息
     * @return              新增记录数
     */
    int insertUserRoleRelationByBatch(@Param(value = "list")UserRoleRelation relationList);

    /**
     * 批量删除角色下的菜单权限信息
     * @param userRoleRelation  权限信息
     * @return                  删除记录数
     */
    int deleteUserRoleRelationByBatch(@Param(value = "dto") UserRoleAllocationDTO userRoleRelation);

    /**
     * 条件查询用户-角色映射关系
     * @param queryDto          查询条件
     * @return                  查询结果
     */
    List<UserRoleRelation> selectUserRoleInfoByCondition(@Param(value = "queryDto") UserRoleQueryDTO queryDto);

    /**
     * 查询用户角色信息
     * @param queryDto          查询条件
     * @return                  查询结果
     */
    List<Role> selectRelationRoleInfoByCondition(@Param(value = "queryDto") UserRoleQueryDTO queryDto);

    /**
     * 查询角色用户信息
     * @param queryDto          查询条件
     * @return                  查询结果
     */
    List<User> selectRelationUserInfoByCondition(@Param(value = "queryDto") UserRoleQueryDTO queryDto);

}
